package de.hska.gp.adventure.labyrinthos4d.raumomat;

/**
 * Orientierungsklasse, um zu erkennen in welche Richtung der Spieler läuft, bzw. aus welcher Richtung er kam.
 * 
 * @author Martin Napiwotzky, Oliver Eichner
 * @version 0.1
 * 
 */
public class Orientomat {
	
	public static final int NULL = 0; //Startpunkt
	public static final int EINS = 1; // x-Achse
	public static final int ZWEI = 2; // z-Achse
	public static final int DREI = 3; // y-Achse
	public static final int VIER = 4; // h-Achse. Verbindung innerer und äusserer Würfel
	
	/** Richtung aus der der Spieler kam */
	private int richtung;
	 
	/**
	 * Standart Konstruktor
	 */
	public Orientomat(){
		this.richtung=NULL;
	}
	
	/**
	 * Gibt die Richtung an in welche der Spieler laufen möchte
	 * @param richtung Richtung in welche der Spieler laufen möchte (1-4)
	 * @return gewählte Richtung
	 */
	public int setRichtung(int richtung){
		this.richtung=richtung;
		return this.richtung;
	}
	
	/**
	 * Gibt die gewählte Richtung zurück
	 * @return
	 */
	public  int getRichtung(){
		return this.richtung;
	}
	
	/**
	 * Gibt alle Richtungen zurück, ausser die aus der der Spieler kam
	 * @return int[] Array aus Richtungsangaben
	 */
	public int[] getNeueRichtungen(){
		int[] retVal= new int[3];
		int cnt = 0;
		for (int i = 1; i < 5; i++) {
			if(i!=this.richtung){
				retVal[cnt]=i;
				cnt++;
			}
		}
		return retVal;
	}
}
